// 配置axios的全局基础路径
axios.defaults.baseURL = "http://localhost:8080";
// 将axios设置为全局参数
Vue.prototype.$http = axios;

/*============================ 前置拦截器 ============================*/
axios.interceptors.request.use(res => {
    // 获取到本地Storage的token数据
    let token = localStorage.getItem("token");
    if (token) {
        // 如果token有值的话，将token值保存到请求头中
        res.headers["token"] = token;
    }
    // 放行请求
    return res
}, Error => {
    Promise.reject(Error);
})

/*=========================== 后置拦截器 ==============================*/
axios.interceptors.response.use(res => {
    //  获取到相应数据中的数据
    let login = res.data;
    if (login.msg == "noLogin") {
        // 如果响应结果中没有登陆信息，则跳转到登录界面
        location.href = "login.html";
    }
    return res;
}, Error => {
    Promise.reject(Error);
})

/*============================= 前端拦截器 ===============================*/
let url = location.href;
if (url.indexOf("login.html") == -1
    && url.indexOf("register.html") == -1
    && url.indexOf("index.html") == -1
    && url.indexOf("callback.html") == -1
    && url.indexOf("binder.html") == -1) {
    // 如果请求路径中包含上述资源的时候，就放行，而其他请求全部拦截
    let loginInfo = localStorage.getItem("loginInfo");
    if (!loginInfo) {
        // 删除localStorage中的信息
        localStorage.removeItem("token");
        localStorage.removeItem("loginInfo");
        // 如果没有登录状态，就跳转到登录页面
        location.href = "login.html";
    }
}

/*============================= 定义解析请求路径URI的方法 ============================*/
let parseRequestURI = url => {
    let JsonObject = {};
    // 截取到url中的参数，即？后的字符串
    url = url.substring(url.indexOf("?") + 1);
    // 将截取到的参数字符串按照"&"进行分割，得到对应的参数字符串数组
    let params = url.split("&");
    // 遍历数组，将对应的参数按照键值对保存到对象中
    params.forEach(item => {
        JsonObject[item.split("=")[0]] = item.split("=")[1];
    })
    console.log(JsonObject);
    // 返回解析得到的json数组
    return JsonObject;
}